package com.example.springboot.service.impl;
// 导入MyBatis-Plus查询条件构造器
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 导入MyBatis-Plus分页对象
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 导入MyBatis-Plus服务实现基类
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
// 导入调宿申请实体类
import com.example.springboot.entity.AdjustRoom;
// 导入调宿申请Mapper接口
import com.example.springboot.mapper.AdjustRoomMapper;
// 导入调宿申请服务接口
import com.example.springboot.service.AdjustRoomService;
// 导入Spring服务注解
import org.springframework.stereotype.Service;
// 导入Spring资源注入注解
import javax.annotation.Resource;
/**
 * 调宿申请服务实现类
 * 继承自MyBatis-Plus的ServiceImpl，提供基础CRUD功能
 * 实现AdjustRoomService接口，定义具体业务逻辑
 */
@Service
public class AdjustRoomServiceImpl extends ServiceImpl<AdjustRoomMapper, AdjustRoom> implements AdjustRoomService {

    // 注入调宿申请Mapper
    @Resource
    private AdjustRoomMapper adjustRoomMapper;
    /**
     * 添加调宿申请
     * @param adjustRoom 调宿申请实体
     * @return 插入成功的记录数
     */
    @Override
    public int addApply(AdjustRoom adjustRoom) {
        int insert = adjustRoomMapper.insert(adjustRoom);
        return insert;
    }
    /**
     * 分页查询调宿申请
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param search 搜索关键词（用户名）
     * @return 分页结果
     */
    @Override
    public Page find(Integer pageNum, Integer pageSize, String search) {
        // 创建分页对象
        Page page = new Page<>(pageNum, pageSize);
        // 创建查询条件构造器
        QueryWrapper<AdjustRoom> qw = new QueryWrapper<>();
        // 添加模糊查询条件（用户名）
        qw.like("username", search);
        // 执行分页查询
        Page orderPage = adjustRoomMapper.selectPage(page, qw);
        return orderPage;
    }
    /**
     * 删除调宿申请
     * @param id 调宿申请ID
     * @return 删除成功的记录数
     */
    @Override
    public int deleteAdjustment(Integer id) {
        // 调用Mapper的deleteById方法删除记录
        int i = adjustRoomMapper.deleteById(id);
        return i;
    }


    /**
     * 更新调宿申请
     * @param adjustRoom 调宿申请实体（需包含ID）
     * @return 更新成功的记录数
     */
    @Override
    public int updateApply(AdjustRoom adjustRoom) {
        // 调用Mapper的updateById方法更新记录
        int i = adjustRoomMapper.updateById(adjustRoom);
        return i;
    }
}
